package com.uni.mapper;

import com.uni.common.entity.User;
import com.uni.common.util.PageBean;
import com.uni.dto.UserBaseInfoDTO;
import com.uni.dto.UserDTO;
import com.uni.dto.UserRoleDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
*	@author yanzheng_Yu
*	@date 2019年1月20日
*/
public interface UserMapper {

	User findById(Long id);

	User findByOpenid(String openid);

	int insert(User user);

	int update(User user);

	int updateBalance(@Param("updateUser") Map<String, Object> updateUser);

	User findByPhone(String phone);

	int updateDeductionNumber(@Param("userId") Long userId, @Param("deductionNumber") int deductionNumber);

	UserBaseInfoDTO findByBaseInfo(@Param("userId") Long userId);

	User findByNickname(@Param("nickname") String nickname);

	List<UserDTO> findList(PageBean<UserDTO> pageBean);

	Integer countList(PageBean<UserDTO> pageBean);

	User findByBgLoginName(@Param("bgLoginName") String bgLoginName);

	int updateUserStatus(@Param("ids") String[] ids);

	int updateBalanceBatch(@Param("users") List<UserDTO> users);

	int updateRole(UserRoleDTO userRoleDTO);

}
